package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * 集合间的操作
 * @author 范传奇
 *
 */
public class CollectionDemo4 {
	public static void main(String[] args) {
		Collection c1 = new ArrayList();
		c1.add("java");
		c1.add("c++");
		c1.add(".net");
		System.out.println("c1:"+c1);
		
		Collection c2 = new HashSet();
		c2.add("android");
		c2.add("ios");
		c2.add("java");
		System.out.println("c2:"+c2);
		/*
		 * boolean addAll(Collection c)
		 * 将给定集合中的所有元素添加到当前集合中。
		 */
//		c2.addAll(c1);//重复元素不能放入Set集合两次
		c1.addAll(c2);
		System.out.println("c1:"+c1);
		System.out.println("c2:"+c2);
		
		
		Collection c3 = new ArrayList();
		c3.add(".net");
		c3.add("ios");
//		c3.add("php");
		System.out.println("c3:"+c3);
		/*
		 * boolean containsAll(Collection c)
		 * 判断当前集合是否包含给定集合中的所有元素。
		 * 
		 * 注意区别昨天学习的contains方法，如果是:
		 * c1.contains(c3)
		 * 则是判断当前c1集合中是否有一个元素是c3集合。此时是把c3当成一个元素看待
		 * 由于c1集合中没有一个元素是一个集合类型，因此返回为false.
		 */
		boolean contains = c1.containsAll(c3);
		System.out.println("c1是否包含c3所有元素:"+contains);
		
		/*
		 * removeAll(Collection c)
		 * 删除交集，即:删除当前集合中与给定集合的共有元素。但是给定的集合元素不受
		 * 影响。
		 * 
		 */
		c1.removeAll(c3);//删除交集,删除c1当中与c3集合的共有元素
		System.out.println("c1:"+c1);//c1元素减少了
		System.out.println("c3:"+c3);//c3元素没有变化
	}
}







